home *** CD-ROM | disk | FTP | other *** search
/ FM Towns: Free Software Collection 6 / FM Towns Free Software Collection 6.iso / t_os / igo / src / igo.c < prev    next >
Text File  |  1993-07-08  |  5KB  |  189 lines

  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4. #include <snd.h>
  5. #include <winb.h>
  6. #include <te.h>
  7. #include <fntb.h>
  8. #include <gui.h>
  9.  
  10. char    *guiEgbPtr ;            /*    EGB のワークアドレス    */
  11. char    guiSndPtr[16*1024] ;    /*    SND のワークアドレス    */
  12.  
  13. void main()
  14. {
  15.     extern int APL_init() ;
  16.  
  17.     MMICTRL    ctrl ;
  18.  
  19.     /*    ダイアログの移動範囲を設定するために、 MMI_Open関数    */
  20.     /*    の引数を使用します。通常の移動範囲ならば引数の指定    */
  21.     /*    は、 NULL で大丈夫です。                                */
  22.  
  23.     ctrl.page0 = 3 ;            /*    16色2画面に設定する        */
  24.     ctrl.page1 = 3 ;
  25.     ctrl.writePage = 0 ;        /*    page0 を書き込みページ    */
  26.     ctrl.displayPage = 3 ;        /*    2画面表示                */
  27.     ctrl.priority = 0 ;
  28.     ctrl.mode = 0 ;                /*    16色モードに設定する    */
  29.     ctrl.width = 512 ;            /*    画面モード3 では512        */
  30.     ctrl.size = 0 ;                /*    メモリの初期化は         */
  31.     ctrl.ptr = NULL ;            /*    GUIライブラリに任せる        */
  32.     ctrl.asize = 0 ;            /*    アプリケーションで必要とする    */
  33.     ctrl.aptr = NULL ;            /*    初期メモリは無し        */
  34.     ctrl.fr.lupx = 0 ;            /*    画面の大きさを            */
  35.     ctrl.fr.lupy = 0 ;            /*  (0,0)-(639,479)            */
  36.     ctrl.fr.rdwx = 639 ;        /*    に設定する                */
  37.     ctrl.fr.rdwy = 479 ;
  38.     ctrl.move = ctrl.fr ;        /*    移動枠の Y 座標を        */
  39.     ctrl.move.lupy = 22 ;        /*        22 に設定する        */
  40.     ctrl.white = 15 ;            /*    白色は   15 番            */
  41.     ctrl.black = 8 ;            /*    黒色は    8 番            */
  42.     ctrl.gray = 7 ;                /*    灰色は    7 番            */
  43.     ctrl.xor = 14 ;                /*    反転色は 14 番            */
  44.  
  45.     /*    致命的エラーハンドラの登録    */
  46.     FM_SetVector() ;
  47.  
  48.     /*    サウンドの初期化    */
  49.     SND_init(guiSndPtr) ;
  50.  
  51.     /*    初期化処理    */
  52.     if (MMI_Open( &ctrl ) == NOERR)
  53.     {
  54.         /*    初期化に成功すればメインループに入る.    */
  55.         if (APL_init() == NOERR)
  56.             /*    ファイルダイアログ関係の初期化処理        */
  57.             /*    カレントディレクトリを保存する        */
  58.             FDG_SaveCurDir() ;
  59.             /*    ファイルダイアログの初期化            */
  60.             FDG_InitFileDlg() ;
  61.  
  62.             MMI_ExecSystem() ;
  63.  
  64.             /*    ファイルダイアログ関係の終了処理        */
  65.             /*    メモリ開放            */
  66.             FDG_FreeFileDlg() ;
  67.             /*    カレントディレクトリを復帰する        */
  68.             FDG_RecovCurDir() ;
  69.     }
  70.  
  71.     /*    終了処理    */
  72.     MMI_Close() ;
  73.  
  74.     /*    サウンドの終了    */
  75.     SND_end() ;
  76.  
  77.     /*    致命的エラーハンドラの復帰    */
  78.     FM_ResetVector() ;
  79. }
  80.  
  81. int APL_init()
  82. {
  83.     extern MMIINIT    initDataMIABOU ;
  84.     extern MMIINIT    initDataMIHANDY ;
  85.     extern MMIINIT    initDataMITITLE ;
  86.     extern MMIINIT    initDataMIDESK ;
  87.     extern MMIINIT    initDataMIAUTO ;
  88.     extern MMIINIT    initDataMIWARN ;
  89.     extern MMIINIT    initDataMICOMMNT ;
  90.  
  91.     /*    サイドワークの登録に使う部品の外部宣言    */
  92.     extern int mitemBarId[] ;
  93.  
  94.     register int    ret ;
  95.  
  96.     /*    EGB ワークアドレスの取得.    */
  97.     guiEgbPtr = MMI_GetEgbPtr() ;
  98.  
  99.     /*    ハイパ型部品の初期化            */
  100.     if ((ret = MMI_initHyper()) < 0)
  101.         return ret ;
  102.     /*    ダイアログ型部品の初期化        */
  103.     if ((ret = MMI_initDialogL40()) < 0)
  104.         return ret ;
  105.     /*    アラート型部品の初期化            */
  106.     if ((ret = MMI_initAlertL40()) < 0)
  107.         return ret ;
  108.     /*    ウインドウ型部品の初期化        */
  109.     if ((ret = MMI_initWindowL40()) < 0)
  110.         return ret ;
  111.     /*    メッセージ型部品の初期化        */
  112.     if ((ret = MMI_initMessageL40()) < 0)
  113.         return ret ;
  114.     /*    メニュー型部品の初期化            */
  115.     if ((ret = MMI_initMenuL40()) < 0)
  116.         return ret ;
  117.     /*    ボタン型部品の初期化            */
  118.     if ((ret = MMI_initButtonL40()) < 0)
  119.         return ret ;
  120.     /*    ドロウボタン型部品の初期化        */
  121.     if ((ret = MMI_initDrawButtonL40()) < 0)
  122.         return ret ;
  123.     /*    アイコンボタン型部品の初期化    */
  124.     if ((ret = MMI_initIconL40()) < 0)
  125.         return ret ;
  126.     /*    トグルアイコン型部品の初期化    */
  127.     if ((ret = MMI_initToggleIconL40()) < 0)
  128.         return ret ;
  129.     /*    メニューアイテム型部品の初期化    */
  130.     if ((ret = MMI_initMenuItemL40()) < 0)
  131.         return ret ;
  132.     /*    スクロールバー型部品の初期化        */
  133.     if ((ret = MMI_initScrollBarL40()) < 0)
  134.         return ret ;
  135.     /*    テキスト型部品の初期化            */
  136.     if ((ret = MMI_initTextL40()) < 0)
  137.         return ret ;
  138.     /*    数値入力型部品の初期化            */
  139.     if ((ret = MMI_initNumBoxL40()) < 0)
  140.         return ret ;
  141.     /*    ファイルダイアログを使うときはリストメニューの初期化も必要    */
  142.     /*    リストメニュー型部品の初期化            */
  143.     if ((ret = MMI_initListMenuL40()) < 0)
  144.         return ret ;
  145.  
  146.     /*    デフォルトビジュアルイフェクトの登録    */
  147.     MMI_SetUpVisualEffect() ;
  148.  
  149.     /*    デフォルトサウンドイフェクトの登録        */
  150.     MMI_SetUpSoundEffect() ;
  151.  
  152.     /*    背景データの初期化                        */
  153.     disp_init();
  154.     kifu_init();
  155.  
  156.     /*    データの登録        */
  157.     if ((ret = MMI_Init(&initDataMIABOU)) < 0)
  158.         return ret ;
  159.  
  160.     if ((ret = MMI_Init(&initDataMIHANDY)) < 0)
  161.         return ret ;
  162.  
  163.     if ((ret = MMI_Init(&initDataMITITLE)) < 0)
  164.         return ret ;
  165.  
  166.     if ((ret = MMI_Init(&initDataMIDESK)) < 0)
  167.         return ret ;
  168.  
  169.     if ((ret = MMI_Init(&initDataMIAUTO)) < 0)
  170.         return ret ;
  171.  
  172.     /*    データの登録        */
  173.     if ((ret = MMI_Init(&initDataMIWARN)) < 0)
  174.         return ret ;
  175.  
  176.     /*    データの登録        */
  177.     if ((ret = MMI_Init(&initDataMICOMMNT)) < 0)
  178.         return ret ;
  179.  
  180.     /*    背景を表示する                            */
  181.     MMI_SendMessage(MMI_GetBaseObj(), MM_SHOW, 0) ;
  182.  
  183.     /*    SIDEWORKメニューを登録する                */
  184.     MMI_SetUpSDKMenu( mitemBarId[0] , -1 ) ;
  185.  
  186.     return NOERR ;
  187. }
  188.  
  189.